package com.mhc.suzuki.manager;

import com.mhc.suzuki.vo.OrderVO;
import com.subaru.common.query.PageResult;
import com.mhc.suzuki.dal.model.OrderDO;
import com.mhc.suzuki.dal.query.OrderQuery;

import java.util.List;
import java.util.Map;


/**
 * Manager for Order.
 */
public interface OrderManager {
  /**
   * query count by query condition.
   */
  int countByQuery(OrderQuery query);

  /**
   * delete by query condition.
   */
  int deleteByQuery(OrderQuery query);

  /**
   * delete by primary key.
   */
  int deleteByPrimaryKey(OrderDO record);

  /**
   * insert selective.
   */
  long insertSelective(OrderDO record);

  /**
   * select by query condition.
   */
  List<OrderDO> selectByQuery(OrderQuery query);

  List<OrderVO> selectListByQuery(Map<String, ?> paramMap);


  /**
   * select by query condition with page.
   */
  PageResult<OrderDO> selectByQueryWithPage(OrderQuery query); /**
   * select by query condition with page.
   */
  PageResult<OrderVO> selectListByQueryWithPage(Map<String, ?> paramMap);

  /**
   * select by primary key.
   */
  OrderDO selectByPrimaryKey(Long id);

  /**
   * select by order no.
   */
  OrderDO selectByOrderNo(String orderNo);

  /**
   * update by query condition selective.
   */
  int updateByQuerySelective( OrderDO record,  OrderQuery query);

  /**
   * update by query condition.
   */
  int updateByQuery(OrderDO record, OrderQuery query);

  /**
   * update by primary key selective.
   */
  int updateByPrimaryKeySelective(OrderDO record);

  int countListByQuery(Map<String, ?> paramMap);
}
